<template>
	<view class="page">
		<custom-navigation title="新增库存预警设置" rightTxt="保存" @rightAction="save">
		</custom-navigation>


		<view class="head-item flex-row-center">
			<view class="title">商品明细</view>
			<view class="add-goods" @click="$navigateTo('/pages/goods/goods_info?selectMode=true&isStockSetting=true')">选择商品</view>
		</view>


		<scroll-view scroll-y="true" class="body-scroll" style="margin-top: 20rpx;">

			<view class="item-view flex-row-center" v-for="(item,index) in goodsList" @click="itemOnClick(item)">
				<image src="/static/remove.png" @click.stop="remove(index)"></image>
				<view  >
					<view class="name">{{item.goods_name}}</view>
					<view class="flex-row-center" style="flex: 1;">
						<view style="flex: 1; margin: 4rpx 0;">供应商：{{item.supplier}}</view>
						<view class="flex-row-center">现有库存： {{item.stock_num}} </view>
					
					
					</view>
					<view class="flex-row-center" style="flex: 1;">
						<view style="flex: 1; margin: 4rpx 0;">条码：{{item.goods_barcode}}</view>
						<view class="flex-row-center">最低库存： <input :id="index" v-enter-number  @input="item.min_stock = ($event.target.value.replace(/[^\d]/g,''));changeInput($event)" v-model="item.min_stock"
								placeholder="请输入" type="number" /></view>
					
					</view>
					<view class="flex-row-center">
						<view style="flex: 1;margin: 4rpx 0;">单位：{{item.goods_unit}}</view>
						<view class="flex-row-center">最高库存： <input :id="index" v-enter-number @input="item.max_stock = ($event.target.value.replace(/[^\d]/g,''));changeInput($event)" v-model="item.max_stock"
								placeholder="请输入" type="number" /></view>
					
					</view>
				</view>
				
			</view>


		</scroll-view>
	<!-- 	<view class="total-box flex-row-center">
			共{{goodsList.length}}种，{{getAllQty()}}件商品
		</view>
		<view class="bottom-container flex-row-center">
			<view class="item" @click="save(0)">保存草稿</view>
			<view class="item1" @click="save(1)">提交</view>
		</view> -->


		<!-- <image class="qrcode-img" src="/static/manage/qrcode2.png" mode="aspectFill" @click="qrcode"></image> -->
		<drag-button :isDock="true" :existTabBar="true" @btnClick="qrcode" @btnTouchstart="btnTouchstart"
			@btnTouchend="btnTouchend" />

	</view>
</template>

<script>
	import {
		fatherAndSonUpdates,
		fatherAndSonAdds
	} from '@/common/api/parameter_tool.js'
	export default {
		data() {
			return {
				editGoodsDialogShow: false,
				currGoodsInfo: {},
				remarkDialogShow: false,
				title: "新增库存",
				remark: "",
				dialogRemark: "",
				currInputNum: '',
				currInputPrice: '',
				goodsList: [],
				info: null
			}
		},
		onLoad(options) {
			if (options.info != null) {
				this.info = JSON.parse(options.info)
				this.remark = this.info.remark
				this.getData()
			}
		},
		onShow() {
			let list = uni.getStorageSync("multipleSelectList")
			if (list != null) {
				for (let i in list) {
					// list[i].stock_num = list[i].goods_stock
					// list[i].id = null;
				}
				let listbars = [];
				for (let i in this.goodsList) {
					listbars.push(this.goodsList[i].goods_barcode);
				}
				
				for (let i in list) {
					let barcode = list[i].goods_barcode;
					if (listbars.indexOf(barcode) == -1) {
						this.goodsList.push(list[i]);
					}
				}
				uni.setStorageSync("multipleSelectList", null)
			}
		},
		methods: {

			changeInput(e) {
				let index = parseInt(e.currentTarget.id)
				console.log(index);
				this.goodsList[index].change = true;
			},
			confirmEntry() {
				this.currGoodsInfo.warehousing_num = this.currInputNum;
				this.currGoodsInfo.purchase_price = this.currInputPrice;
				this.editGoodsDialogShow = false;
			},
			itemOnClick(item) {
				this.currGoodsInfo = item;
				this.currInputNum = this.currGoodsInfo.warehousing_num;
				this.currInputPrice = this.currGoodsInfo.purchase_price;
				this.editGoodsDialogShow = true;
			},
			rightAction() {
				this.remark = this.dialogRemark;
				this.remarkDialogShow = false;
			},
			getAllQty() {
				let countQty = 0;
				for (let i in this.goodsList) {
					countQty += parseInt(this.goodsList[i].warehousing_num ?? '0')
				}
				return countQty;
			},
			remove(index) {
				this.goodsList.splice(index, 1)
			},
			getAmount(item) {
				return (item.purchase_price ?? 0) * (item.warehousing_num ?? 1)
			},
			 btnTouchstart(e) {
				console.log(e);
			},
			btnTouchend(e) {
				console.log(e);
			},
			qrcode() {
				// this.qrcodeSearch("1667031567808")
				let ths = this;
				dsBridge.call("QRCode", {}, function(res) {
					if (res) {
						ths.qrcodeSearch(res)

					}
				})
			},
			qrcodeSearch(qrcode) {
				uni.showLoading({
					title: "加载中..."
				})
				console.log("qrcode",qrcode)
				this.$apiPost("/retail/select/srvretail_store_stock_select", {
					serviceName: "srvretail_store_stock_select",
					condition: [{
						"colName": "goods_barcode",
						"ruleType": "like",
						"value": qrcode
					}],
					page: {
						"pageNo": 1,
						"rownumber": 500
					},
					"colNames": ["*"]
				}).then(res => {
					uni.hideLoading()
					if (res.data.length > 0) {
						for (let i in this.goodsList) {
							if (this.goodsList[i].goods_barcode == qrcode) {
								this.goodsList[i].warehousing_num = (parseInt(this.goodsList[i].warehousing_num ??
									"1") + 1) + ""
								return;
							}
						}
						res.data[0].warehousing_num = "1"
						this.goodsList.push(res.data[0])
					} else {
						this.$showToast('没有找到该条码')
					}
				})
			},
			save() {
				let params = [];
				if(this.goodsList.length==0){
					this.$showToast("请选择商品！");
					return;
				}
				for (let i in this.goodsList) {
					let item = this.goodsList[i]
					// if(parseFloat(item.max_stock||'0')==0){
					// 	this.$showToast("最高库存不可为0")
					// 	return;
					// } else if((parseFloat(item.min_stock||'0')>parseFloat(item.max_stock||'0')) || item.max_stock==0){
					// 	this.$showToast("最高库存不可小于最低库存")
					// 	return;
					// }
					if(parseFloat(item.max_stock||'0')==0 && (parseFloat(item.min_stock||'0')!=0)){
						//不可删除
					} else if(parseFloat(item.max_stock||'0')!=0 && (parseFloat(item.min_stock||'0')==0)){
						//不可删除
					} else if(parseFloat(item.max_stock||'0')==0 && (parseFloat(item.min_stock||'0')==0)){
						this.$showToast("最高库存和最低库存不能同时为0")
						return;
					} else if((parseFloat(item.min_stock||'0')>=parseFloat(item.max_stock||'0'))){
						this.$showToast("最高库存不可小于等于最低库存")
						return;
					}

						params.push({
							"serviceName": "srvretail_stock_warning_update",
							"data": [{
								"max_stock": item.max_stock,
								"min_stock": item.min_stock,
							}],
							"condition": [{
								"colName": "id",
								"value": item.id,
								"ruleType": "eq"
							}]
						})
				}
				
				uni.showLoading({
					title: "修改中..."
				})
				this.$apiPost("/retail/operate/srvretail_stock_warning_update", params).then(res => { 
					uni.hideLoading()
					if(res.state=='SUCCESS'){
						this.$showToast("保存成功")
						setTimeout(()=>{
							uni.setStorageSync("refresh",true)
							 uni.navigateBack()
						},1500)
					}
				})
			}
		}
	}
</script>

<style scoped lang="scss">
	.head-contaienr {
		background-color: white;

		.item {
			padding: 20rpx 20rpx;

			.value {
				flex: 1;
				font-size: 32rpx;
				font-weight: 500;
				color: rgba(51, 51, 51, 1);
			}
		}

		.bluebtn {
			width: 124rpx;
			height: 48rpx;
			text-align: center;
			line-height: 48rpx;
			border-radius: 4rpx;
			border: 2rpx solid rgba(56, 192, 158, 1);
			margin-right: 22rpx;
			font-size: 28rpx;
			font-weight: 500;
			color: rgba(56, 192, 158, 1);
		}

		.redbtn {
			width: 124rpx;
			height: 48rpx;
			text-align: center;
			line-height: 48rpx;
			border-radius: 4rpx;
			border: 2rpx solid rgba(212, 48, 48, 1);
			margin-right: 22rpx;
			font-size: 28rpx;
			font-weight: 500;
			color: rgba(212, 48, 48, 1);
		}
	}

	.head-item {
		padding-left: 20rpx;
		padding-right: 24rpx;
		min-height: 100rpx;
		background-color: white;
		margin-bottom: 2rpx;

		.title {
			font-size: 32rpx;
			font-weight: 500;
			color: rgba(0, 0, 0, 1);
			flex: 1;
		}

		.value {
			font-size: 28rpx;
			font-weight: 500;
		}

		image {
			margin-left: 16rpx;
			width: 8rpx;
			height: 16rpx;

		}

		.add-goods {
			box-sizing: content-box;
			width: 160rpx;
			height: 60rpx;
			line-height: 60rpx;
			text-align: center;
			border-radius: 60rpx;
			border: 1px solid rgba(212, 48, 48, 1);
			font-size: 30rpx;
			font-weight: 400;
			color: rgba(212, 48, 48, 1);
		}
	}

	.remark-dialog {
		width: 560rpx;
		justify-content: center;
		border-radius: 20rpx;
		background: rgba(255, 255, 255, 1);
		padding-top: 34rpx;

		.title-box {
			font-size: 18px;
			font-weight: 700;
			color: rgba(51, 51, 51, 1);
			position: relative;

			.text {
				width: 540rpx;
				text-align: center;
			}

			image {
				width: 52rpx;
				position: absolute;
				right: 10rpx;
				top: 0;
				height: 52rpx;
			}
		}

		.line {
			margin-top: 14rpx;
			height: 2rpx;
			width: 100%;
			background-color: rgba(225, 225, 225, 1);
		}

		.input {
			width: 464rpx;
			height: 210rpx;
			margin-left: 48rpx;
			margin-top: 44rpx;
			margin-bottom: 60rpx;
			border: 2rpx solid rgba(241, 241, 241, 1);
			padding: 20rpx;
			box-sizing: border-box;
			color: rgba(153, 153, 153, 1);
			font-size: 24rpx;
			font-weight: 500;
		}


		.boottom-btn-box {
			width: 100%;
			height: 100rpx;
			border-radius: 0 0 20rpx 20rpx;
			font-size: 36rpx;
			font-weight: 700;
			border-top: 2rpx solid rgba(224, 222, 222, 1);

			.left-btn {
				flex: 1;
				line-height: 100rpx;
				text-align: center;
				color: rgba(56, 192, 158, 1);
				border-right: 1rpx solid rgba(224, 222, 222, 1);
			}

			.right-btn {
				flex: 1;
				line-height: 100rpx;
				text-align: center;
			}
		}
	}

	.total-box {
		padding-left: 24rpx;
		height: 80rpx;
		opacity: 1;
		background: rgba(227, 227, 227, 1);
		font-size: 24rpx;
		font-weight: 500;
		color: rgba(0, 0, 0, 1);
	}

	.item-view {
		padding: 26rpx 20rpx 0 24rpx;
		padding-bottom: 18rpx;
		background: rgba(255, 255, 255, 1);
		border-bottom: 2rpx solid rgba(245, 245, 247, 1);
		;
		position: relative;

		.name {
			padding-bottom: 20rpx;
			font-size: 28rpx;
			font-weight: 700;
			color: rgba(51, 51, 51, 1);

		}

		view {
			margin-top: 8rpx;
			flex: 1;
			font-size: 28rpx;
			font-weight: 500;
			color: rgba(51, 51, 51, 1);

			input {
				padding-left: 10rpx;
				width: 152rpx;
				font-size: 28rpx;
				border-radius: 8rpx;
				border: 2rpx solid rgba(196, 196, 196, 1);
			}
		}


		image {
			width: 40rpx;
			height: 40rpx;
			right: 24rpx;
		}
	}


	.qrcode-img {
		width: 140rpx;
		height: 140rpx;
		position: fixed;
		bottom: 268rpx;
		right: 24rpx;
	}

	.bottom-container {
		background-color: white;
		box-shadow: 0 -16rpx 16rpx 1rpx #00000008;
		height: 146rpx;
		padding: 0 24rpx;
		justify-content: space-around;

		.item {
			border-radius: 40rpx;
			line-height: 80rpx;
			text-align: center;
			border: 2rpx solid #333333FF;
			width: 192rpx;
			height: 80rpx;
			font-size: 30rpx;
			font-weight: 500;

		}

		.item1 {
			border-radius: 40rpx;
			line-height: 80rpx;
			text-align: center;
			border: 2rpx solid rgba(56, 192, 158, 1);
			background-color: rgba(56, 192, 158, 1);
			color: white;
			width: 192rpx;
			height: 80rpx;
			font-size: 30rpx;
			font-weight: 500;
		}

		.text {
			flex: 1;
			margin-left: 60rpx;
			font-size: 30rpx;
			font-weight: 700;

		}

		.btn {
			margin-right: 34rpx;
			width: 192rpx;
			height: 80rpx;
			border-radius: 40rpx;
			background: rgba(56, 192, 158, 1);
			font-size: 30rpx;
			font-weight: 700;
			color: white;
			text-align: center;
			line-height: 80rpx;
		}
	}


	.showDialog {
		animation: showDialog 0.3s ease-out;
		padding-top: 54rpx;
		width: 750rpx;
		border-radius: 40rpx 40rpx 0 0;
		background: rgba(255, 255, 255, 1);

		.r {
			padding-left: 44rpx;
			margin-bottom: 20rpx;
			font-size: 30rpx;
			font-weight: 500;
			color: rgba(0, 0, 0, 1);

			input {
				height: 48rpx;
				line-height: 48rpx;
				padding: 0 5rpx;
				text-align: center;
				opacity: 1;
				border-radius: 4rpx;
				border: 1px solid rgba(153, 153, 153, 1);
			}
		}

		.bottom-box {
			margin-top: 55rpx;
			box-shadow: 0 -32rpx 32rpx 2rpx rgba(245, 245, 247, 1);

			.cancel {
				flex: 1;
				height: 146rpx;
				line-height: 146rpx;
				text-align: center;
				font-size: 32rpx;
				font-weight: 700;
				color: black;
				background-color: white;
			}

			.confirm {
				flex: 1;
				height: 146rpx;
				line-height: 146rpx;
				text-align: center;
				font-size: 32rpx;
				font-weight: 700;
				color: white;
				background-color: rgba(56, 192, 158, 1);
				;
			}
		}

	}

	// 呼吸帧
	@keyframes showDialog {
		0% {
			transform: translate(0%, 100%);
		}

		100% {
			transform: translate(0%, 0%);
		}

	}
</style>
